#!/usr/bin/python -t

import os.path
import filtres
reload(filtres)
#import filtres.null

def validateLine(path):
	"""
	Funkcja sprawdza poprawnosc kazdej linii w pliku z konfiguracja.
	"""
	i = 0
	input = file(path)
	for line in input.readlines():
		i = i+1;
		if (line[0] == "F" or "P") and (line[1] == ':'):
			#print 'Linia %d jest poprawna' %i
			pass
		else:	
			print "Linia %d jest niepoprawna. Popraw plik z konfiguracja" %i;
			input.close()
			#break #po odkomentowaniu program nie dziala dalej w przypadku niewlasciwej konfiguracji
	input.close()
##
	
def createFilter(line):
	"""
	Funkcja ktora tworzy filtr i go zwraca
	"""
	#if line[0] == "F":
	#print line[2:]
	tmp = filtres.FilterNull(line)
	return tmp
##

def getFilterId(line):
	"""
	Funkcja ktora wylawia z podanej linii id filtru
	"""
	tmp = line.split(':')
	tmp2 = tmp[1].split(',')
	return int(tmp2[0])
##
			
validateLine("config")
input = file("config")
filterList = [] #lista filtrow
filterIdList = [] #lista identyfikatorow filtrow
filterDict = {} #slownik ktory trzyma w kupie i identyfikator i filtr

#wstawianie zawartosci do list
for line in input.readlines():
	if line[0] == "F" and line[1] == ":":
		filterList.append( createFilter(line))
		filterIdList.append( getFilterId(line))
input.close()

#wstawianie zawartosci do slownika
i=0
for key in filterIdList:
	filterDict[key] = filterList[i]
	i = i+1


	
print "Tablica zawierajaca filtry posiada teraz %d elementow" %len(filterList)
print "Ostatni element to: %s" %filterList[-1]
print "Slownik zawiera %d elementow" %len(filterDict)

#czyszcze zawartosc listy z filtrami i listy z identyfikatorami filtrow
filterIdList = []
filterList = []
